package com.example.d2_reflect;

import java.io.FileOutputStream;
import java.io.PrintStream;
import java.lang.reflect.Field;

/**
 * 目标：保存任意对象的字段和其数据到文件中去
 */
public class ObjectFrame {
    public static void saveObject(Object obj) throws Exception {
        PrintStream ps = new PrintStream(new FileOutputStream("D:\\code\\Java\\idea_java_project\\java-promax-project\\day24-junit-reflect-annotation-proxy\\src\\data.txt", true));
        Class c = obj.getClass();
        String cName = c.getSimpleName();
        ps.println("------------------------" + cName + "------------------------");
        // 从这个类中提取全部的成员变量
        Field[] fields = c.getDeclaredFields();
        // 遍历这个成员变量数组
        for (Field field : fields) {
            // 获取成员变量的名称和值
            String name = field.getName();
            field.setAccessible(true);
            String value = field.get(obj) + "";
            ps.println(name + "=" + value);
        }
        ps.close();
    }
}
